#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/blkdev.h>
#include <linux/bio.h>
#include <linux/buffer_head.h>
#include <linux/device.h>
#include <linux/jhash.h>
#include <linux/idr.h>
#include <linux/init.h>
#include <linux/slab.h>
#include <linux/socket.h>

#include <linux/in.h>
#include <linux/in6.h>

#include <net/sock.h>

#define DST_DEFAULT_TIMEO	20000

typedef int (*pfunc)(int family, int type, int protocol, struct socket **res, int);

pfunc ttt = 0xc029dbe0;

static int __init test_init(void)
{
	int err;
    struct socket *sock;

    printk("enter %s\n", __FUNCTION__);
/*	err = sock_create(PF_INET, SOCK_STREAM, 0, &sock); */
    err = ttt(PF_INET, SOCK_STREAM, 0, &sock, 0); 
	if (err < 0)
        printk("%s : sock_create ret %d\n", __FUNCTION__, err);

	sock->sk->sk_sndtimeo = sock->sk->sk_rcvtimeo =
		msecs_to_jiffies(DST_DEFAULT_TIMEO);
	sock->sk->sk_allocation = GFP_NOIO;

    return (0);
}

static void __exit test_exit(void)
{
    printk("leave %s\n", __FUNCTION__);    
}

module_init(test_init);
module_exit(test_exit);


MODULE_DESCRIPTION("test");
MODULE_AUTHOR("tom");
MODULE_LICENSE("GPL");
